////////////////////////////////////////////////////////////////////////////////
//
//  FLEX USER GROUP HOKURIKU
//  Copyright 2009 Flex User Group Hokuriku
//  All Rights Reserved.
// 
//  NOTICE: Flex User Group Hokuriku permits you to use, 
//  modify, and distribute this file 
//  in accordance with the terms of the license agreement accompanying it.
//
////////////////////////////////////////////////////////////////////////////////
package net.fxug.hokuriku.chocolat.events
{
    import flash.events.Event;
    import flash.events.SQLEvent;

	/**
     * 投票関連をSQLに登録された際にdispatchされるイベントクラス
	 * TODO 現在ではセッション情報登録イベントもこのクラスで発行されるためリネームが必要
	 * @author morizou
	 */	
    public class SQLVoteEvent extends flash.events.SQLEvent
    {
        /**
         * セッション情報取得イベント
         * <p>このイベントには、次のプロパティがあります。</p>
         * <table class=innertable>
         * <tr><th>Property</th><th>Value</th></tr>
         * <tr><td>value</td><td>登録されたSessionId</td></tr>
         * </table>
         *
         * @eventType insertSessionEvent
         */
        public static const INSERT_SESSION_EVENT:String = "insertSessionEvent";
        /**
         * セッション情報登録イベント
         * <p>このイベントには、次のプロパティがあります。</p>
         * <table class=innertable>
         * <tr><th>Property</th><th>Value</th></tr>
         * <tr><td>data</td><td>SessionDaoの配列</td></tr>
         * </table>
         *
         * @eventType selectSessionEvent
         */
        public static const SELECT_SESSION_EVENT:String = "selectSessionEvent";
        /**
         * 投票情報登録イベント
         *
         * @eventType insertVoteEvent
         */
        public static const INSERT_VOTE_EVENT:String = "insertVoteEvent";
        /**
         * 投票情報取得イベント
         * <p>このイベントには、次のプロパティがあります。</p>
         * <table class=innertable>
         * <tr><th>Property</th><th>Value</th></tr>
         * <tr><td>data</td><td>VoteDaoの配列</td></tr>
         * </table>
         *
         * @eventType selectVoteEvent
         */
        public static const SELECT_VOTE_EVENT:String = "selectVoteEvent";
        /**
         * セッションIDを指定してVote情報を取得する。
         * <p>このイベントには、次のプロパティがあります。</p>
         * <table class=innertable>
         * <tr><th>Property</th><th>Value</th></tr>
         * <tr><td>data</td><td>VoteDaoの配列</td></tr>
         * </table>
         *
         * @eventType selectVoteBySessionEvent
         */
        public static const SELECT_VOTE_BY_SESSIONID_EVENT:String = "selectVoteBySessionEvent";

        /** SQL実行結果オブジェクト */
        private var _data:Object;

		/**
		 * 
		 * @param type イベントタイプ
		 * @param data 登録データ取得イベント
		 * @param bubbles バブリング可能かどうか
		 * @param cancelable キャンセル可能かどうか。
		 * 
		 */		
        public function SQLVoteEvent(type:String, data:Object, bubbles:Boolean = false, cancelable:Boolean = false)
        {
            super(type, bubbles, cancelable);

            this._data = data;
        }

		/**
		 * @inheritDoc flash.events.Event#clone()
		 */
        override public function clone():Event
        {
            return new SQLVoteEvent(type, this.data, bubbles, cancelable);
        }
		/**
		 * @private
		 */
        public function get data():Object
        {
            return this._data;
        }

    }
}